This disclosure relates to automatically and dynamically commissioning and decommissioning computer components. More specifically, the disclosure relates to commissioning and decommissioning computer components using a message queue to facilitate communications between virtualization platforms and hardware platforms.
Networked computing environments frequently employ a large number of computer components, such as blade servers. Such computer components perform a myriad of complex tasks using large amounts of data in networked configurations with multiple other computer components. For such computer components, a relatively static infrastructure may be implemented, in which installation of operating systems and/or hypervisors may be automated, but physical hardware is typically installed and not subsequently modified.
To achieve performance advantages and flexibility, it would be desirable to implement an elastic infrastructure for computer components, in which physical hardware, operating systems, and/or hypervisors can be automatically and selectively provisioned to meet dynamic system needs (e.g., workload). To address software needs, tools such as preboot execution environment (PXE) booting and virtualization platforms (e.g., VMware® platforms (VMware is a registered trademark of VMware, Inc., Palo Alto, Calif.)) may be leveraged to automatically provision an operating system. For hardware needs, hardware platforms (e.g., Cisco UCS® platforms (Cisco UCS is a registered trademark of Cisco Technology, Inc., San Jose, Calif.)) allow for hardware to be defined by software, allowing for the automation of physical hardware.
However, facilitating direct communication between virtualization platforms and hardware platforms is relatively difficult. Notably, such architectures require manual interaction by a user, and require that each platform know how to directly contact the other platforms. Further, such architectures are also susceptible to upgrade problems. For example, if one platform is upgraded, existing application programming interfaces (APIs) may change, breaking communication capabilities between the platforms. Additionally, process changes may disrupt how individual technologies are leveraged, requiring a complete rework of communication schemes, which is time-consuming and expensive.
Accordingly, there is a need for more effective systems for dynamically provisioning computer components in a networked computer environment.